//package com.zhongsou.souyue.filemanager;
//
//import android.os.Handler;
//import android.os.HandlerThread;
//import android.os.Message;
//import android.util.Log;
//
//import java.io.*;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//
///**
//* Created by Administrator on 2015/5/30.
//*/
//public class WriteHandler {
//    private Handler mSaveStoreHandler;//自定义handler
//    public static final int OPEAN_WRITER=0;//打开writer标识
//    public static final int WRITE_FILELOG = 1;//写日志
//    private Writer mWriter;//写日志的流
//    private String mFileName;
//    private File currentFile;
//    private static final int MAX_SIZE = 1024*100;//记录日志文件最大size
//    public static String mFileDir;
//    public static SaveType mSaveType;
//    public WriteHandler(String saveFileName,SaveType saveType){
//        if(mSaveType == SaveType.SAVE_CRASH_FILE_TYPE){
//            if(saveFileName==null){
//                this.mFileName = DateString()+".crash";
//            }else{
//                this.mFileName = saveFileName;
//            }
//        }else if(mSaveType == SaveType.SAVE_DEBUG_FILE_TYPE){
//            if(saveFileName == null){
//                throw new IllegalArgumentException("DEBUG saveFileName can't be null");
//            }else{
//                this.mFileName = saveFileName;
//            }
//        }else{
//            throw new IllegalArgumentException("can't find this SaveType");
//        }
//
//        HandlerThread handlerThread = new HandlerThread("FileLogger",android.os.Process.THREAD_PRIORITY_BACKGROUND);
//        if(!handlerThread.isAlive()){
//            handlerThread.start();
//        }
//        mSaveStoreHandler = new Handler(handlerThread.getLooper()){
//            @Override
//            public void handleMessage(Message msg) {
//                super.handleMessage(msg);
//                switch(msg.what){
//                    case OPEAN_WRITER:
//                        try{
//                            closeWriter();
//                        }catch (Exception e){
//                            e.printStackTrace();
//                        }
//                        try{
//                            openWriter();
//                        }catch (Exception e){
//                            e.printStackTrace();
//                        }
//                        break;
//                    case WRITE_FILELOG:
//                        String crashLog = (String)msg.obj;
//                        try {
//                            if(mWriter!=null){
//                                mWriter.append(crashLog);
//                                mWriter.flush();
//                            }else{
//                                openWriter();
//                                Log.i("SaveFile", "打开Writer流");
//                            }
//                            if(mWriter!=null){
//                                mWriter.append(crashLog);
//                                mWriter.flush();
//                                Log.i("---->","写入文件成功");
//                            }
//                        } catch (IOException e) {
//                            e.printStackTrace();
//                            mSaveStoreHandler.sendEmptyMessage(OPEAN_WRITER);
//                        }
//                        if(mSaveType == SaveType.SAVE_CRASH_FILE_TYPE){
//                            verifyCrashFileSize();//检测文件大小
//                        }
//                        break;
//                }
//            }
//        };
//        mSaveStoreHandler.sendEmptyMessage(OPEAN_WRITER);
//    }
//
//    private void closeWriter(){
//        try {
//            if(mWriter!=null) {
//                mWriter.close();
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//    private void openWriter(){
//        if(mFileName!=null){
//            String filePath = mFileDir+mFileName;
//            Log.i("crashFilePath",filePath);
//            if(FileUtils.ifExistFile(filePath)){//文件及其目录存在
//            }else{//创建文件及其目录
//                new File(filePath).getParentFile().mkdirs();
//                try {
//                    currentFile = new File(filePath);
//                    currentFile.createNewFile();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                    Log.i("SaveFile"," 创建文件失败1");
//                }
//            }
//            try {
//                if(mWriter == null){
//                    mWriter = new OutputStreamWriter(new FileOutputStream(filePath, true), "UTF-8");
//                }
//            } catch (UnsupportedEncodingException e) {
//                e.printStackTrace();
//            } catch (FileNotFoundException e) {
//                e.printStackTrace();
//            }
//        }else{
//            Log.i("FileUtils","mCrashFileName 不能为 null");
//        }
//    }
//
//    public void saveLog(String logStr){
//        Message msg = new Message();
//        msg.obj=logStr;
//        msg.what=WRITE_FILELOG;
//        mSaveStoreHandler.sendMessage(msg);
//    }
//
//    private void verifyCrashFileSize() {
//        if(currentFile!=null){
//            if(currentFile.length()>MAX_SIZE){//如果日志文件超过最大size则以后写入到另外的文件中
//                mFileName = DateString()+".crash";
//                closeWriter();
//                openWriter();
//            }
//        }
//    }
//
//    private String DateString(){
//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
//        return format.format(new Date());
//    }
//}
